package gui;

/*
 * Esse arquivo é parte do Software new Recicle
 * 
 * Copyright (C) 2011-$AnoCorrente$ Eduardo Moreira Barbosa
 * Copyright (C) 2011-$AnoCorrente$ João dos Santos Gonçalves
 * Copyright (C) 2011-$AnoCorrente$ Lucas Ximenes da Fonseca
 * 
 * new Recicle é um Software Livre: Você pode redistribuí-lo e/ou modificá-lo
 * de acordo com os termos da Licença Pública Geral GNU (GNU General Public License)
 * conforme publicada pela Free Software Foundation (FSF). Essa permissão é atribuída
 * na versão 3 da Licença, ou (na sua opinião) qualquer versão.
 * 
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa,
 * se não, escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 * Boston, MA  02110-1301  USA
 * 
 * Se você tiver alguma dúvida e/ou quiser dar suporte ao desenvolvimento, favor entrar em
 * contato nos e-mails <barbosa.edrd@gmail.com>, <john.jsg@hotmail.com>, <lxf.lucas@gmail.com>.
 */

import bd.BancoAssociado;
import bd.BancoDeDados;
import bd.BancoEmpresa;
import bd.BancoProduto;
import bd.BancoVoluntario;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;

public class Opcoes_Voluntario extends javax.swing.JPanel {

    private static String BOTAOSELECIONADO;
    private ListarCadastrados LISTACAD;
    private String[] pesquisa;
    private String nomeSelecionado;
    
    public Opcoes_Voluntario() {
        initComponents();
        
        labelImagem.setIcon(NewRecicle.iconUser);
        
        botoesGrupo.add(associadoRadio);
        botoesGrupo.add(voluntarioRadio);
        botoesGrupo.add(empresaRadio);
        botoesGrupo.add(produtoRadio);
    }

    public String botaoSelecionado(){
        if (associadoRadio.isSelected() == true) {
            BOTAOSELECIONADO = "associado";
        } else if (voluntarioRadio.isSelected() == true) {
            BOTAOSELECIONADO = "voluntario";
        } else if (empresaRadio.isSelected() == true) {
            BOTAOSELECIONADO = "empresa";
        } else if (produtoRadio.isSelected() == true) { // produtoRadio
            BOTAOSELECIONADO = "produto";
        }
        return BOTAOSELECIONADO;
    }

    private void botaoCadastrar() throws HeadlessException {
        int quant;
        
        if (botaoSelecionado().equals("associado")) {
            BancoAssociado bancoAssociado = new BancoAssociado();
            bancoAssociado.pesquisarId();
            quant = bancoAssociado.retornarId().length;
            
            if (quant < 6) {
                CadastrarAssociado cadAssociado = new CadastrarAssociado(new javax.swing.JFrame(), true);
                cadAssociado.setLocationRelativeTo(this);
                cadAssociado.setVisible(true);
            } else {
                JOptionPane.showMessageDialog(this, "Nesse projeto, o limite de associados para fins de desenvolvimento,são de seis. \n"
                        + "Nas proximas versões esse número será elevado! \n"
                        + "Contate os administradores do new Recicle(), para maiores informações");
            }
            
        } else if (botaoSelecionado().equals("voluntario")) {
            BancoVoluntario bancoVoluntario = new BancoVoluntario();
            bancoVoluntario.pesquisarId();
            quant = bancoVoluntario.retornarId().length;
            
            if (quant < 6) {
                CadastrarVoluntario cadVoluntario = new CadastrarVoluntario(new javax.swing.JFrame(), true);
                cadVoluntario.setLocationRelativeTo(this);
                cadVoluntario.setVisible(true);
            } else {
                JOptionPane.showMessageDialog(this, "Nesse projeto, o limite de voluntários para fins de desenvolvimento,são de seis. \n"
                        + "Nas proximas versões esse número será elevado! \n"
                        + "Contate os administradores do new Recicle(), para maiores informações");
            }
            
        } else if (botaoSelecionado().equals("empresa")) {
            CadastrarEmpresa cadEmpresa = new CadastrarEmpresa(new javax.swing.JFrame(), true);
            cadEmpresa.setLocationRelativeTo(this);
            cadEmpresa.setVisible(true);
            
        } else if (botaoSelecionado().equals("produto")) {
            CadastrarProduto cadProduto = new CadastrarProduto(new javax.swing.JFrame(), true);
            cadProduto.setLocationRelativeTo(this);
            cadProduto.setVisible(true);
        }
    }

    private void botaoEditar() throws HeadlessException {
        
        if (botaoSelecionado().equals("associado")) {
        
            BancoAssociado bancoAssociado = new BancoAssociado();
            bancoAssociado.pesquisarId();
            pesquisa = bancoAssociado.retornarId();

            ListarCadastrados listarCadastrados = new ListarCadastrados(new javax.swing.JFrame(), true);
            listarCadastrados.adicionaListagem( pesquisa );
            listarCadastrados.setLocationRelativeTo(this);
            listarCadastrados.setVisible(true);
            
            nomeSelecionado = listarCadastrados.getSelecionado();
            
            boolean naoVazio = nomeSelecionado.equals("");
            
            if ( !naoVazio ) {
                bancoAssociado.pesquisarBanco(nomeSelecionado);
                pesquisa = bancoAssociado.retornarBanco().split("#");

                CadastrarAssociado Associado = new CadastrarAssociado(new javax.swing.JFrame(), true);
                try {
                    Associado.editandoAssociado(pesquisa[0], pesquisa[1], pesquisa[2], pesquisa[3]);
                    
                    Associado.setIsEdicao(true);
                    Associado.setSelecionado(nomeSelecionado);
                    
                    Associado.setLocationRelativeTo(this);
                    Associado.setVisible(true);
                } catch (Exception e) {
            
                } 
            }
            
         } else if (botaoSelecionado().equals("voluntario")) {
             
            BancoVoluntario bancoVoluntario = new BancoVoluntario();
            bancoVoluntario.pesquisarId();
            pesquisa = bancoVoluntario.retornarId();

            ListarCadastrados listarCadastrados = new ListarCadastrados(new javax.swing.JFrame(), true);
            listarCadastrados.adicionaListagem( pesquisa );
            listarCadastrados.setLocationRelativeTo(this);
            listarCadastrados.setVisible(true);
            
            nomeSelecionado = listarCadastrados.getSelecionado();
            
            boolean naoVazio = nomeSelecionado.equals("");
            
            if ( !naoVazio ) {
                bancoVoluntario.pesquisarBanco(nomeSelecionado);
                pesquisa = bancoVoluntario.retornarBanco().split("#");

                CadastrarVoluntario Voluntario = new CadastrarVoluntario(new javax.swing.JFrame(), true);
                try {
                    Voluntario.editandoVoluntario(pesquisa[0], pesquisa[1], pesquisa[2],
                            pesquisa[3], pesquisa[4], pesquisa[5], pesquisa[6]);
                    
                    Voluntario.setIsEdicao(true);
                    Voluntario.setSelecionado(nomeSelecionado);
                   
                    Voluntario.setLocationRelativeTo(this);
                    Voluntario.setVisible(true);
                } catch (Exception e) {
            
                } 
            }
             
         } else if (botaoSelecionado().equals("empresa")) {
             
            BancoEmpresa bancoEmpresa = new BancoEmpresa();
            bancoEmpresa.pesquisarId();
            pesquisa = bancoEmpresa.retornarId();

            ListarCadastrados listarCadastrados = new ListarCadastrados(new javax.swing.JFrame(), true);
            listarCadastrados.adicionaListagem( pesquisa );
            listarCadastrados.setLocationRelativeTo(this);
            listarCadastrados.setVisible(true);
            
            nomeSelecionado = listarCadastrados.getSelecionado();
            
            boolean naoVazio = nomeSelecionado.equals("");
            
            if ( !naoVazio ) {
                bancoEmpresa.pesquisarBanco(nomeSelecionado);
                pesquisa = bancoEmpresa.retornarBanco().split("#");

                CadastrarEmpresa Empresa = new CadastrarEmpresa(new javax.swing.JFrame(), true);
                try {
                    Empresa.editandoEmpresa(pesquisa[0], pesquisa[1], pesquisa[2], pesquisa[3], pesquisa[4], pesquisa[5],
                              pesquisa[6], pesquisa[7], pesquisa[8], pesquisa[9], pesquisa[10], pesquisa[11]);

                    Empresa.setIsEdicao(true);
                    Empresa.setSelecionado(nomeSelecionado);
                    
                    Empresa.setLocationRelativeTo(this);
                    Empresa.setVisible(true);
                } catch (Exception e) {
            
                } 
            }
             
             
         } else if (botaoSelecionado().equals("produto")) {
            BancoProduto bancoProduto = new BancoProduto();
            bancoProduto.pesquisarId();
            pesquisa = bancoProduto.retornarId();

            ListarCadastrados listarCadastrados = new ListarCadastrados(new javax.swing.JFrame(), true);
            listarCadastrados.adicionaListagem( pesquisa );
            listarCadastrados.setLocationRelativeTo(this);
            listarCadastrados.setVisible(true);
            
            nomeSelecionado = listarCadastrados.getSelecionado();
            
            boolean naoVazio = nomeSelecionado.equals("");
            
            if ( !naoVazio ) {
                bancoProduto.pesquisarBanco(nomeSelecionado);

                CadastrarProduto Produto = new CadastrarProduto(new javax.swing.JFrame(), true);
                try {
                    Produto.editandoProduto(nomeSelecionado);
                    
                    Produto.setIsEdicao(true);
                    Produto.setSelecionado(nomeSelecionado);
                   
                    Produto.setLocationRelativeTo(this);
                    Produto.setVisible(true);
                } catch (Exception e) {
            
                } 
            }
         }
    }

    /**
     * Funçoes para o exclusão de associados, voluntários,
     * produtos e empresas.
     * @throws HeadlessException 
     */
    private void botaoExcluir() throws HeadlessException {
        if (botaoSelecionado().equals("associado")) {

            BancoAssociado bancoAssociado = new BancoAssociado();
            bancoAssociado.pesquisarId();
            pesquisa = bancoAssociado.retornarId();

            LISTACAD = new ListarCadastrados(new javax.swing.JFrame(), true);
            LISTACAD.adicionaListagem(pesquisa);

            LISTACAD.setLocationRelativeTo(this);
            LISTACAD.setVisible(true);
            
            try {
                nomeSelecionado = LISTACAD.getSelecionado();
                
                bancoAssociado.apagar(nomeSelecionado);
                /*
                 * Atualiza os botoes
                 */
                NewRecicle.desativaBotoes();
                
            } catch (Exception e) {
                System.out.println("Erro ao tentar excluir!");
            }
            
        } else if (botaoSelecionado().equals("voluntario")) {

            BancoVoluntario bancoVoluntario = new BancoVoluntario();
            bancoVoluntario.pesquisarId();
            pesquisa = bancoVoluntario.retornarId();

            LISTACAD = new ListarCadastrados(new javax.swing.JFrame(), true);
            LISTACAD.adicionaListagem(pesquisa);

            LISTACAD.setLocationRelativeTo(this);
            LISTACAD.setVisible(true);
            
            try {
                nomeSelecionado = LISTACAD.getSelecionado();
                bancoVoluntario.apagar(nomeSelecionado);
                /*
                 * Atualiza os botoes
                 */
                NewRecicle.desativaBotoes();                                
                
            } catch (Exception e) {
                System.out.println("Erro ao tentar excluir voluntário!");
            }
            
        } else if (botaoSelecionado().equals("empresa")) {
            BancoDeDados bancoDeDados = new BancoDeDados();
            bancoDeDados.conectarBanco();

            BancoEmpresa bancoEmpresa = new BancoEmpresa();
            bancoEmpresa.pesquisarId();
            pesquisa = bancoEmpresa.retornarId();

            LISTACAD = new ListarCadastrados(new javax.swing.JFrame(), true);
            LISTACAD.adicionaListagem(pesquisa);

            LISTACAD.setLocationRelativeTo(this);
            LISTACAD.setVisible(true);
            
            try {
                nomeSelecionado = LISTACAD.getSelecionado();

                bancoEmpresa.apagar(nomeSelecionado);
                
            } catch (Exception e) {
            }
            
        } else if (botaoSelecionado().equals("produto")) {
            BancoDeDados bancoDeDados = new BancoDeDados();
            bancoDeDados.conectarBanco();

            BancoProduto bancoProduto = new BancoProduto();
            bancoProduto.pesquisarId();
            pesquisa = bancoProduto.retornarId();

            LISTACAD = new ListarCadastrados(new javax.swing.JFrame(), true);
            LISTACAD.adicionaListagem(pesquisa);

            LISTACAD.setLocationRelativeTo(this);
            LISTACAD.setVisible(true);
            
            try {
                nomeSelecionado = LISTACAD.getSelecionado();
                
                bancoProduto.apagar(nomeSelecionado);
            } catch (Exception e) {
            }
        } else {
            
        }
    }
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        botoesGrupo = new javax.swing.ButtonGroup();
        cadastrarBotao = new javax.swing.JButton();
        editarBotao = new javax.swing.JButton();
        excluirBotao = new javax.swing.JButton();
        associadoRadio = new javax.swing.JRadioButton();
        voluntarioRadio = new javax.swing.JRadioButton();
        empresaRadio = new javax.swing.JRadioButton();
        produtoRadio = new javax.swing.JRadioButton();
        labelImagem = new javax.swing.JLabel();
        sairBotao = new javax.swing.JButton();

        setMinimumSize(new java.awt.Dimension(810, 650));
        setPreferredSize(new java.awt.Dimension(810, 650));

        cadastrarBotao.setFont(new java.awt.Font("Tahoma", 0, 22));
        cadastrarBotao.setText("Cadastrar");
        cadastrarBotao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cadastrarBotaoActionPerformed(evt);
            }
        });

        editarBotao.setFont(new java.awt.Font("Tahoma", 0, 22));
        editarBotao.setText("Editar");
        editarBotao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editarBotaoActionPerformed(evt);
            }
        });

        excluirBotao.setFont(new java.awt.Font("Tahoma", 0, 22));
        excluirBotao.setText("Excluir");
        excluirBotao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                excluirBotaoActionPerformed(evt);
            }
        });

        associadoRadio.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        associadoRadio.setSelected(true);
        associadoRadio.setText("Associado");

        voluntarioRadio.setFont(new java.awt.Font("Tahoma", 0, 18));
        voluntarioRadio.setText("Voluntário");

        empresaRadio.setFont(new java.awt.Font("Tahoma", 0, 18));
        empresaRadio.setText("Empresa");

        produtoRadio.setFont(new java.awt.Font("Tahoma", 0, 18));
        produtoRadio.setText("Produto");

        sairBotao.setFont(new java.awt.Font("Tahoma", 0, 18));
        sairBotao.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/ervilha/sair.jpg"))); // NOI18N
        sairBotao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sairBotaoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(labelImagem, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 479, Short.MAX_VALUE)
                        .addComponent(sairBotao, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(138, 138, 138)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(cadastrarBotao, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(30, 30, 30)
                                .addComponent(editarBotao)
                                .addGap(32, 32, 32)
                                .addComponent(excluirBotao))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(35, 35, 35)
                                .addComponent(associadoRadio)
                                .addGap(18, 18, 18)
                                .addComponent(voluntarioRadio)
                                .addGap(18, 18, 18)
                                .addComponent(empresaRadio)
                                .addGap(18, 18, 18)
                                .addComponent(produtoRadio)))))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cadastrarBotao, editarBotao, excluirBotao});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(sairBotao, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(labelImagem, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 244, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(cadastrarBotao, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(editarBotao)
                            .addComponent(excluirBotao))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(associadoRadio)
                            .addComponent(voluntarioRadio)
                            .addComponent(empresaRadio)
                            .addComponent(produtoRadio))
                        .addGap(33, 33, 33))))
        );

        layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {cadastrarBotao, editarBotao, excluirBotao});

    }// </editor-fold>//GEN-END:initComponents

    private void editarBotaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editarBotaoActionPerformed
        botaoEditar();
    }//GEN-LAST:event_editarBotaoActionPerformed

    private void cadastrarBotaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cadastrarBotaoActionPerformed
        botaoCadastrar();
    }//GEN-LAST:event_cadastrarBotaoActionPerformed

    private void sairBotaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sairBotaoActionPerformed
        NewRecicle.janela.setContentPane(NewRecicle.paneisTab);
        NewRecicle.janela.validate();
    }//GEN-LAST:event_sairBotaoActionPerformed

    private void excluirBotaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_excluirBotaoActionPerformed
        botaoExcluir();
    }//GEN-LAST:event_excluirBotaoActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JRadioButton associadoRadio;
    private javax.swing.ButtonGroup botoesGrupo;
    private javax.swing.JButton cadastrarBotao;
    private javax.swing.JButton editarBotao;
    private javax.swing.JRadioButton empresaRadio;
    private javax.swing.JButton excluirBotao;
    private javax.swing.JLabel labelImagem;
    private javax.swing.JRadioButton produtoRadio;
    private javax.swing.JButton sairBotao;
    private javax.swing.JRadioButton voluntarioRadio;
    // End of variables declaration//GEN-END:variables
}
